BaseProtocolServer

StockSharp.Server.Core

Clase base para servidores de protocolo (FIX, SBE, etc.) Contiene infraestructura compartida: ciclo de vida, sesiones, suscripciones, canales de mensajes, tareas de fondo.

Hereda de: BaseLogReceiver

Implementa: IProtocolServer, ILogReceiver, ILogSource, IDisposable

Constructores

BaseProtocolServer
protected BaseProtocolServer(TSettings settings)
baseProtocolServer = BaseProtocolServer(settings)

Inicia una nueva instancia.

settings
Ajustes del servidor.

Propiedades

LoginRateLimiter
protected LoginRateLimiter LoginRateLimiter { get; private set; }
value = baseProtocolServer.LoginRateLimiter
baseProtocolServer.LoginRateLimiter = value

Limitador de tarifas para los intentos de inicio de sesión (compartido entre todos los oyentes).

Sessions
public IEnumerable<IMessageListenerSession> Sessions { get; }
value = baseProtocolServer.Sessions

Sesiones activas.

Settings
public TSettings Settings { get; }
value = baseProtocolServer.Settings

Ajustes.

State
public ChannelStates State { get; protected set; }
value = baseProtocolServer.State
baseProtocolServer.State = value

Consigue el almacenamiento estatal subyacente.

Métodos

AddSubscription
public void AddSubscription(ServerSubscription subscription)
baseProtocolServer.AddSubscription(subscription)

Agregue su suscripción.

subscription
Suscripción.
ClearState
protected virtual void ClearState()
baseProtocolServer.ClearState()

Despejar todo el estado: oyentes, sesiones, suscripciones.

Convert
protected string Convert(string value)
result = baseProtocolServer.Convert(value)

Convertir texto en latín si está configurado.

CreateSubscription
protected abstract TSubscription CreateSubscription(TClientSession session, string requestId, ServerSubscription subscription, MessageTypes type)
result = baseProtocolServer.CreateSubscription(session, requestId, subscription, type)

Crear una instancia de información de suscripción.

Disconnect
public void Disconnect(IMessageListenerSession session)
baseProtocolServer.Disconnect(session)

Sesión de desconexión.

session
Sesión.
DisposeManaged
protected override void DisposeManaged()
baseProtocolServer.DisposeManaged()

Libera recursos.

EnqueueMessage
protected void EnqueueMessage(TClientSession session, string requestId, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(session, requestId, handler, cancellationToken)

Encargue el mensaje para una sesión con ID de solicitud.

EnqueueMessage
protected void EnqueueMessage(TSubscription subscription, TClientSession session, string requestId, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask<bool>> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(subscription, session, requestId, handler, cancellationToken)

Encuentro básico: programar trabajo en una sesión de cliente.

EnqueueMessage
protected void EnqueueMessage(TSubscription[] subscribers, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(subscribers, handler, cancellationToken)

Encuue message for multiple subscribers.

EnqueueMessage
protected void EnqueueMessage(TSubscription[] subscribers, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask<bool>> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(subscribers, handler, cancellationToken)

Encuue message for multiple subscribers (with bool result).

EnqueueMessage
protected void EnqueueMessage(TSubscription subscription, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(subscription, handler, cancellationToken)

Encuue message for a single subscription.

EnqueueMessage
protected void EnqueueMessage(TSubscription subscription, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask<bool>> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(subscription, handler, cancellationToken)

Encuue message for a single subscription (with bool result).

EnqueueMessage
protected void EnqueueMessage(TClientSession session, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(session, handler, cancellationToken)

Solicitar un mensaje para una sesión (sin solicitar ID).

GetSessionKey
protected abstract string GetSessionKey(TClientSession session)
result = baseProtocolServer.GetSessionKey(session)

Consiga la clave utilizada para agrupar las sesiones de clientes (e.g. SenderCompId).

GetSubscriptions
public IEnumerable<ServerSubscription> GetSubscriptions(IMessageListenerSession session)
result = baseProtocolServer.GetSubscriptions(session)

Obtener suscripción para la sesión especificada.

session
Sesión.

Devuelve: Suscripciones.

HasSubscriptions
public bool HasSubscriptions(DataType dataType, SecurityId securityId)
result = baseProtocolServer.HasSubscriptions(dataType, securityId)

Hay suscriptores.

IsStubSubscription
protected abstract bool IsStubSubscription(TSubscription subscription)
result = baseProtocolServer.IsStubSubscription(subscription)

Compruebe si la suscripción es un stub (accionista de posición).

Load
public override void Load(SettingsStorage storage)
baseProtocolServer.Load(storage)

Ajustes de carga.

storage
Configuración de almacenamiento.
OnClearListenerState
protected abstract void OnClearListenerState()
baseProtocolServer.OnClearListenerState()

Estado de escucha específico del protocolo claro (detener a los oyentes, etc.).

OnStartListeners
protected abstract void OnStartListeners(CancellationToken cancellationToken)
baseProtocolServer.OnStartListeners(cancellationToken)

Comience los oyentes específicos del protocolo (TCP, etc.) Agregue tareas a _backgroundTasks.

ProcessInMessage
protected abstract void ProcessInMessage(Message message, CancellationToken cancellationToken)
baseProtocolServer.ProcessInMessage(message, cancellationToken)

Procesar un mensaje entrante y una ruta para clientes suscritos.

ProcessLogout
protected virtual void ProcessLogout(TClientSession session)
baseProtocolServer.ProcessLogout(session)

Procesamiento de logotipo/desconexión cliente.

RaiseNewOutMessage
protected void RaiseNewOutMessage(IMessageListenerSession session, Message message)
baseProtocolServer.RaiseNewOutMessage(session, message)

Escribe mensaje saliente al canal.

RaiseSessionConnected
protected void RaiseSessionConnected(IMessageListenerSession session)
baseProtocolServer.RaiseSessionConnected(session)

Elevar el evento conectado sesión.

RaiseSessionDisconnected
protected void RaiseSessionDisconnected(IMessageListenerSession session)
baseProtocolServer.RaiseSessionDisconnected(session)

Levantar sesión evento desconectado.

RemoveSubscription
public bool RemoveSubscription(ServerSubscription subscription)
result = baseProtocolServer.RemoveSubscription(subscription)

Retire la suscripción.

subscription
Suscripción.

Devuelve: si se encontró la suscripción, de lo contrario.

Resume
public bool Resume(ServerSubscription subscription)
result = baseProtocolServer.Resume(subscription)

Reanuda la suscripción.

subscription
Suscripción.

Devuelve: si se encontró la suscripción, de lo contrario.

Resume
public void Resume(IMessageListenerSession session)
baseProtocolServer.Resume(session)

Continuación del período de sesiones.

session
Sesión.
RunAsync
public IAsyncEnumerable<ValueTuple<IMessageListenerSession, Message>> RunAsync(CancellationToken cancellationToken)
result = baseProtocolServer.RunAsync(cancellationToken)

Ejecute mensajes de procesamiento y de vuelta de mensajes salientes como IAsyncEnumerable. Abre el servidor al principio y cierra al final.

Save
public override void Save(SettingsStorage storage)
baseProtocolServer.Save(storage)

Guardar configuración.

storage
Configuración de almacenamiento.
ScheduleSessionWork
protected abstract void ScheduleSessionWork(TClientSession session, ServerSubscription subscription, string requestId, Func<TClientSession, string, CancellationToken, ValueTask<bool>> handler)
baseProtocolServer.ScheduleSessionWork(session, subscription, requestId, handler)

Programar trabajo en la cola de salida de una sesión de cliente.

SendInMessage
public virtual bool SendInMessage(Message message)
result = baseProtocolServer.SendInMessage(message)

Enviar mensaje entrante al servidor para procesar y enrutar a los clientes.

StartServer
protected void StartServer(CancellationToken cancellationToken)
baseProtocolServer.StartServer(cancellationToken)

Iniciar el servidor: inicializar el estado, iniciar los oyentes y tareas de fondo.

StopServer
protected void StopServer()
baseProtocolServer.StopServer()

Detén el servidor: cancela tareas, canales completos, estado claro.

Suspend
public void Suspend(IMessageListenerSession session)
baseProtocolServer.Suspend(session)

Sesión suspendida.

session
Sesión.
Suspend
public bool Suspend(ServerSubscription subscription)
result = baseProtocolServer.Suspend(subscription)

Suscripción suspendida.

subscription
Suscripción.

Devuelve: si se encontró la suscripción, de lo contrario.

Eventos

SessionConnected
public event Action<IMessageListenerSession> SessionConnected
baseProtocolServer.SessionConnected += handler

Evento conectado a la sesión.

SessionDisconnected
public event Action<IMessageListenerSession> SessionDisconnected
baseProtocolServer.SessionDisconnected += handler

Sesión evento desconectado.

StateChanged
public event Action StateChanged
baseProtocolServer.StateChanged += handler

Acto de cambio de Estado.

SubscriptionChanged
public event Action<ServerSubscription> SubscriptionChanged
baseProtocolServer.SubscriptionChanged += handler

La suscripción al cliente cambió el evento.

Campos

_backgroundTasks
protected readonly List<Task> _backgroundTasks
value = baseProtocolServer._backgroundTasks

Tareas de fondo (aceptar clientes, procesar mensajes, etc.).

_cancellationRequests
protected readonly SynchronizedSet<long> _cancellationRequests
value = baseProtocolServer._cancellationRequests

Hasta que se cancelen los documentos de transacción de solicitud de cancelación de pedidos.

_changedSubscriptions
protected readonly SynchronizedSet<ServerSubscription> _changedSubscriptions
value = baseProtocolServer._changedSubscriptions

Cambio de suscripciones pendientes de notificación.

_clientSessions
protected readonly CachedSynchronizedDictionary<string, CachedSynchronizedList<TClientSession>> _clientSessions
value = baseProtocolServer._clientSessions

Sesiones de clientes agrupadas por clave de sesión (e.g. SenderCompId).

_incomingMessages
protected readonly Channel<Message> _incomingMessages
value = baseProtocolServer._incomingMessages

Canal de mensajes entrantes.

_outgoingMessages
protected readonly Channel<ValueTuple<IMessageListenerSession, Message>> _outgoingMessages
value = baseProtocolServer._outgoingMessages

Canal de mensajes salientes (sesión + pares de mensajes).

_subscriptions
protected readonly SubscriptionHolder<TSubscription, TClientSession> _subscriptions
value = baseProtocolServer._subscriptions

Titular de suscripción.